﻿using System;
using System.Collections.Generic;
using System.Text;

namespace LibraryManagement
{
    /// <summary>
    /// Domain data for Benefit Description Entity
    /// </summary>
    [Serializable]
    public class ProductDescription : DomainAggregate
    {
        #region Constants

        private const String PropBeaconBenefitID = @"beaconBenefitID";
        private const String PropBenefitTableID = @"benefitTableID";
        private const String PropDescriptionType = @"bescriptionType";
        private const String PropDescription = @"description";
        private const String PropSetId = @"setId";
        private const String PropModifyDate = @"modifyDate";
        private const String PropModifyBy = @"modifyBy";
        private const String PropNeedToFormat = @"needtoformat";
        private const String PropFlag = @"Flag";
        private const String PropDescriptionUI = @"DescriptionUI";
        
        #endregion

        #region Constructors

        /// <summary>
        /// Initializes a new instance of the <see cref="DomainAggregate"/> class.
        /// </summary>
        /// <remarks></remarks>
        public ProductDescription()
            : base()
        {
            //add in our properties
            AddProperty(PropBeaconBenefitID, "Beacon_Benefit_ID", typeof(Int32), 0, false);
            AddProperty(PropBenefitTableID, "Benefit_Table_ID", typeof(Int32), 0, false);
            AddProperty(PropDescriptionType, "Description_Type", typeof(Int32), 0, false);
            AddProperty(PropDescription, "Description", typeof(String), String.Empty, false);
            AddProperty(PropSetId, "SetId", typeof(Int32), 0,false);
            AddProperty(PropModifyDate, "Modify_Date", typeof(DateTime), 0, false);
            AddProperty(PropModifyBy, "Modify_By", typeof(String), String.Empty, false);
            AddProperty(PropNeedToFormat, "NeedToFormat", typeof(Int32), 0, false);
            AddProperty(PropFlag, "Flag", typeof(Int32), 0, false);
            AddProperty(PropDescriptionUI, "DescriptionUI", typeof(String), String.Empty, false);

        }

        #endregion

        #region Properties

        /// <summary>
        /// Gets or sets the beacon benefit ID.
        /// </summary>
        /// <value>The beacon benefit ID.</value>
        /// <remarks></remarks>
        public Int32 BeaconBenefitID
        {
            get { return (Int32)this[PropBeaconBenefitID]; }
            set { this[PropBeaconBenefitID] = value; }
        }
        /// <summary>
        /// Gets or sets the benefit table ID.
        /// </summary>
        /// <value>The benefit table ID.</value>
        /// <remarks></remarks>
        public Int32 BenefitTableID
        {
            get { return (Int32)this[PropBenefitTableID]; }
            set { this[PropBenefitTableID] = value; }
        }

        /// <summary>
        /// Gets or sets the type of the description.
        /// </summary>
        /// <value>The type of the description.</value>
        /// <remarks></remarks>
        public Int32 DescriptionType
        {
            get { return (Int32)this[PropDescriptionType]; }
            set { this[PropDescriptionType] = value; }
        }

        /// <summary>
        /// Gets or sets the description.
        /// </summary>
        /// <value>The description.</value>
        /// <remarks></remarks>
        public String Description
        {
            get { return (String)this[PropDescription]; }
            set { this[PropDescription] = value; }
        }

        /// <summary>
        /// Gets or sets the set id.
        /// </summary>
        /// <value>The set id.</value>
        public Int32 SetId
        {
            get { return (Int32)this[PropSetId]; }
            set { this[PropSetId] = value; }
        }

        /// <summary>
        /// Gets or sets the modify date.
        /// </summary>
        /// <value>The modify date.</value>
        public DateTime ModifyDate
        {
            get { return (DateTime)this[PropModifyDate]; }
            set { this[PropModifyDate] = value; }
        }

        /// <summary>
        /// Gets or sets the modify by.
        /// </summary>
        /// <value>The modify by.</value>
        public String ModifyBy
        {
            get { return (String)this[PropModifyBy]; }
            set { this[PropModifyBy] = value; }
        }

        
        /// <summary>
        /// Gets or sets the modify by.
        /// </summary>
        /// <value>The modify by.</value>
        public String DescriptionUI
        {
            get { return (String)this[PropDescriptionUI]; }
            set { this[PropDescriptionUI] = value; }
        }
        /// <summary>
        /// Gets or sets the high light.
        /// </summary>
        /// <value>The high light.</value>
        public Int32 NeedToFormat
        {
            get { return (Int32)this[PropNeedToFormat]; }
            set { this[PropNeedToFormat] = value; }
        }

        public Int32 Flag
        {
            get { return (Int32)this[PropFlag]; }
            set { this[PropFlag] = value; }
        }
        #endregion

    }
}
